﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Configuration;
using System.Data.SqlClient;
using System.Web.Configuration;

namespace SW_SoftBully.Models.ModuloAdministracion.Usuario
{
    public class UsuarioDAO
    {
        public string RegistrarUsuario(UsuarioBean usuario)
        {

            String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

            SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);

            sqlCon.Open();

            string commandString = "INSERT INTO persona (nombres, apellidos,direccion,id_distrito,telefono,celular,correo,genero,estado,nro_documento_persona,tipo_documento, usuario, password, Id_Cargo) VALUES ('" + usuario.nombre + "','" + usuario.apellidos + "', '" + usuario.direccion + "', '" + usuario.distrito + "', " + usuario.telefono + ", '" + usuario.celular + "', '" + usuario.correo + "', '" + usuario.genero + "', 1 , '" + usuario.nro_documento_persona + "', '" + usuario.tipo_documento + "', '" + usuario.user + "', '" + usuario.password + "', " + usuario.Id_Cargo + " )";

            SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);

            sqlCmd.ExecuteNonQuery();

            sqlCon.Close();

            usuario.conexion = "Bien";

            return usuario.conexion;
        }

        public string RegistrarPersonal(PersonalBean personal)
        {

            String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

            SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);

            sqlCon.Open();

            string commandString = "INSERT INTO persona (nombres, apellidos,direccion,id_distrito,telefono,celular,correo,genero,estado,nro_documento_persona,tipo_documento, usuario, password, Id_Cargo) VALUES ('" + personal.nombre + "','" + personal.apellidos + "', '" + personal.direccion + "', '" + personal.distrito + "', " + personal.telefono + ", '" + personal.celular + "', '" + personal.correo + "', '" + personal.genero + "', 1 , '" + personal.nro_documento_persona + "', '" + personal.tipo_documento + "', '" + personal.user + "', '" + personal.password + "', " + personal.Id_Cargo + " )";

            SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);

            sqlCmd.ExecuteNonQuery();

            sqlCon.Close();

            sqlCon.Open();

            string commandString2 = "select * from persona  where nro_documento_persona='" + personal.nro_documento_persona + "' ";

            SqlCommand sqlCmd2 = new SqlCommand(commandString2, sqlCon);

            SqlDataReader dataReader = sqlCmd2.ExecuteReader();

            PersonalBean personal2 = new PersonalBean();

            if (dataReader.Read())
            {
                personal2.id_persona = Convert.ToInt32(dataReader["id_persona"]);

            }

            sqlCon.Close();

            sqlCon.Open();

            string commandString3 = "INSERT INTO personal (id_seguro, sueldo, id_personal) values (" + personal.id_seguro + ", " + personal.sueldo + ", " + personal2.id_persona + ")";

            SqlCommand sqlCmd3 = new SqlCommand(commandString3, sqlCon);

            sqlCmd3.ExecuteNonQuery();

            sqlCon.Close();

            personal.conexion = "Bien";

            return personal.conexion;
        }

        public string RegistrarVendedor(VendedorBean vendedor)
        {

            String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

            SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);

            sqlCon.Open();

            string commandString = "INSERT INTO persona (nombres, apellidos,direccion,id_distrito,telefono,celular,correo,genero,estado,nro_documento_persona,tipo_documento, usuario, password, Id_Cargo) VALUES ('" + vendedor.nombre + "','" + vendedor.apellidos + "', '" + vendedor.direccion + "', '" + vendedor.distrito + "', " + vendedor.telefono + ", '" + vendedor.celular + "', '" + vendedor.correo + "', '" + vendedor.genero + "', 1 , '" + vendedor.nro_documento_persona + "', '" + vendedor.tipo_documento + "', '" + vendedor.user + "', '" + vendedor.password + "', " + vendedor.Id_Cargo + " )";

            SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);

            sqlCmd.ExecuteNonQuery();

            sqlCon.Close();

            sqlCon.Open();

            string commandString2 = "select * from persona  where nro_documento_persona='" + vendedor.nro_documento_persona + "' ";

            SqlCommand sqlCmd2 = new SqlCommand(commandString2, sqlCon);

            SqlDataReader dataReader = sqlCmd2.ExecuteReader();

            VendedorBean vendedor2 = new VendedorBean();

            if (dataReader.Read())
            {
                vendedor2.id_persona = Convert.ToInt32(dataReader["id_persona"]);

            }

            sqlCon.Close();

            sqlCon.Open();

            string commandString3 = "INSERT INTO vendedor (id_vendedor) values ( " + vendedor2.id_persona + ")";

            SqlCommand sqlCmd3 = new SqlCommand(commandString3, sqlCon);

            sqlCmd3.ExecuteNonQuery();

            sqlCon.Close();

            vendedor.conexion = "Bien";

            return vendedor.conexion;
        }

        public string RegistrarCliente(ClienteBean cliente)
        {

            String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

            SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);

            sqlCon.Open();

            string commandString = "INSERT INTO persona (nombres, apellidos,direccion,id_distrito,telefono,celular,correo,genero,estado,nro_documento_persona,tipo_documento, usuario, password, Id_Cargo) VALUES ('" + cliente.nombre + "','" + cliente.apellidos + "', '" + cliente.direccion + "', '" + cliente.distrito + "', " + cliente.telefono + ", '" + cliente.celular + "', '" + cliente.correo + "', '" + cliente.genero + "', 1 , '" + cliente.nro_documento_persona + "', '" + cliente.tipo_documento + "', '" + cliente.user + "', '" + cliente.password + "', " + cliente.Id_Cargo + " )";

            SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);

            sqlCmd.ExecuteNonQuery();

            sqlCon.Close();

            sqlCon.Open();

            string commandString2 = "select * from persona  where nro_documento_persona='" + cliente.nro_documento_persona + "' ";

            SqlCommand sqlCmd2 = new SqlCommand(commandString2, sqlCon);

            SqlDataReader dataReader = sqlCmd2.ExecuteReader();

            ClienteBean cliente2 = new ClienteBean();

            if (dataReader.Read())
            {
                cliente2.id_persona = Convert.ToInt32(dataReader["id_persona"]);

            }

            sqlCon.Close();

            sqlCon.Open();

            string commandString3 = "INSERT INTO cliente (id_cliente) values ( " + cliente2.id_persona + ")";

            SqlCommand sqlCmd3 = new SqlCommand(commandString3, sqlCon);

            sqlCmd3.ExecuteNonQuery();

            sqlCon.Close();

            cliente.conexion = "Bien";

            return cliente.conexion;
        }

        public string RegistrarHabitante(HabitanteBean habitante)
        {

            String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

            SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);

            sqlCon.Open();


            string commandString = "INSERT INTO persona (nombres, apellidos,direccion,id_distrito,telefono,celular,correo,genero,estado,nro_documento_persona,tipo_documento, usuario, password, Id_Cargo) VALUES ('" + habitante.nombre + "','" + habitante.apellidos + "', '" + habitante.direccion + "', '" + habitante.distrito + "', " + habitante.telefono + ", '" + habitante.celular + "', '" + habitante.correo + "', '" + habitante.genero + "', 1 , '" + habitante.nro_documento_persona + "', '" + habitante.tipo_documento + "', '" + habitante.user + "', '" + habitante.password + "', " + habitante.Id_Cargo + " )";

            SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);

            sqlCmd.ExecuteNonQuery();

            sqlCon.Close();

            sqlCon.Open();

            string commandString2 = "select id_persona from persona  where nro_documento_persona='" + habitante.nro_documento_persona + "' ";

            SqlCommand sqlCmd2 = new SqlCommand(commandString2, sqlCon);

            SqlDataReader dataReader = sqlCmd2.ExecuteReader();

            HabitanteBean habitante2 = new HabitanteBean();

            if (dataReader.Read())
            {
                habitante2.id_persona = Convert.ToInt32(dataReader["id_persona"]);

            }

            sqlCon.Close();

            sqlCon.Open();

            if (habitante.es_inquilino == 1)
            {
                habitante.es_propietario = 2;
            }
            else
            {
                habitante.es_propietario = 1;
            }

            string commandString3 = "INSERT INTO habitante (es_inquilino, es_propietario, contacto, telefono_contacto, id_persona) values ( " + habitante.es_inquilino + ", " + habitante.es_propietario + ", '" + habitante.contacto + "', '" + habitante.telefono_contacto + "'," + habitante2.id_persona + ")";

            SqlCommand sqlCmd3 = new SqlCommand(commandString3, sqlCon);

            sqlCmd3.ExecuteNonQuery();

            sqlCon.Close();

            habitante.conexion = "Bien";

            return habitante.conexion;
        }

        public Boolean ExisteUsuario(string user)
        {
            try
            {
                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);

                sqlCon.Open();

                string commandString = "SELECT count(*)  FROM Persona WHERE usuario = '" + user + "' ";

                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                Int32 count = (Int32)sqlCmd.ExecuteScalar();

                if (count > 0)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch (Exception ex)
            {
                return false;
            }
        }

        public Boolean MismoUsuario(string user, int idpersona)
        {
            try
            {
                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);

                sqlCon.Open();

                string commandString = "SELECT count(*)  FROM Persona WHERE usuario = '" + user + "' and id_persona= " + idpersona +" ";

                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                Int32 count = (Int32)sqlCmd.ExecuteScalar();

                if (count > 0)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch (Exception ex)
            {
                return false;
            }
        }

        public Boolean ExisteNroDoc(string tipo_documento, string nro_documento_persona)
        {
            try
            {
                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);

                sqlCon.Open();

                string commandString = "SELECT count(*)  FROM Persona WHERE tipo_documento = '" + tipo_documento + "' AND nro_documento_persona = '" + nro_documento_persona + "' ";


                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);

                Int32 count = (Int32)sqlCmd.ExecuteScalar();

                if (count > 0)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch (Exception ex)
            {
                return false;
            }
        }

        public Boolean MismoNroDoc(string tipo_documento, string nro_documento_persona, int idpersona)
        {
            try
            {
                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);

                sqlCon.Open();

                string commandString = "SELECT count(*)  FROM Persona WHERE tipo_documento = '" + tipo_documento + "' AND nro_documento_persona = '" + nro_documento_persona + "' and id_persona= " + idpersona + " ";


                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);

                Int32 count = (Int32)sqlCmd.ExecuteScalar();

                if (count > 0)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch (Exception ex)
            {
                return false;
            }
        }


        public List<UsuarioBean> ListarUsuario(UsuarioBean usuario0)
        {
            List<UsuarioBean> listaUsuario = new List<UsuarioBean>();

            String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

            SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);
            sqlCon.Open();
            if (usuario0.nombre == null)
            {
                usuario0.nombre = "";
            }
            if (usuario0.apellidos == null)
            {
                usuario0.apellidos = "";
            }
            if (usuario0.nro_documento_persona == null)
            {
                usuario0.nro_documento_persona = "";
            }
            //string commandString = "select p.id_persona, p.Nombres,p.Apellidos,p.Genero,p.tipo_documento,p.Nro_Documento_persona,p.Telefono,";
            //commandString = commandString + " p.celular, p.Correo,p.Direccion,p.Id_Cargo,h.es_inquilino as 'es_inquilino',h.contacto as 'contacto',h.telefono_contacto as 'telefono_contacto',pl.Id_Seguro as 'id_seguro',pl.Sueldo as 'sueldo' from persona p";
            //commandString = commandString + " left join habitante h on p.id_persona=h.id_persona left join personal pl on p.id_persona=pl.Id_Personal where p.Estado=1";

            string commandString = "select * from persona where estado =1";

            if (!usuario0.apellidos.Equals(""))
            {
                commandString = commandString + "  and UPPER(p.apellidos) LIKE '%" + usuario0.apellidos.ToUpper() + "%' ";
            }

            if (!usuario0.nombre.Equals(""))
            {
                commandString = commandString + "  and UPPER(p.nombres) LIKE '%" + usuario0.nombre.ToUpper() + "%' ";
            }

            if (!usuario0.nro_documento_persona.Equals(""))
            {
                commandString = commandString + " and p.nro_documento_persona LIKE '%" + usuario0.nro_documento_persona + "%' ";
            }

            if (usuario0.Id_Cargo>0)
            {
                commandString = commandString + " and p.Id_Cargo=" + usuario0.Id_Cargo + ""; //+" and ";
            }
            //commandString = commandString + " estado=1 ";

            System.Diagnostics.Debug.WriteLine("----  " + commandString);

            SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
            SqlDataReader dataReader = sqlCmd.ExecuteReader();

            while (dataReader.Read())
            {
                UsuarioBean usuario = new UsuarioBean();
                usuario.id_persona = Convert.ToInt32(dataReader["id_persona"]);
                if (!Convert.IsDBNull(dataReader["nombres"]))
                {
                    usuario.nombre = Convert.ToString(dataReader["nombres"]);
                }
                else
                {
                    usuario.nombre = "";
                }
                if (!Convert.IsDBNull(dataReader["apellidos"]))
                {
                    usuario.apellidos = Convert.ToString(dataReader["apellidos"]);
                }
                else
                {
                    usuario.apellidos = "";
                }
                usuario.genero = Convert.ToString(dataReader["genero"]);
                usuario.tipo_documento = Convert.ToString(dataReader["tipo_documento"]);
                usuario.nro_documento_persona = Convert.ToString(dataReader["nro_documento_persona"]);
                usuario.telefono = Convert.ToString(dataReader["telefono"]);
                if (!string.IsNullOrEmpty(Convert.ToString(dataReader["celular"])))
                {
                    usuario.celular = Convert.ToString(dataReader["celular"]);
                }
                if (!string.IsNullOrEmpty(Convert.ToString(dataReader["correo"])))
                {
                    usuario.correo = Convert.ToString(dataReader["correo"]);
                }
                usuario.direccion = Convert.ToString(dataReader["direccion"]);

                if (!Convert.IsDBNull(dataReader["id_cargo"]))
                {
                    usuario.Id_Cargo = Convert.ToInt32(dataReader["id_cargo"]);
                }

               // if (!Convert.IsDBNull(dataReader["es_inquilino"]))
               // {
               //     usuario.es_inquilino = Convert.ToInt32(dataReader["es_inquilino"]);
               // }
               //if (!Convert.IsDBNull(dataReader["contacto"]))
               // {
               //     usuario.contacto = Convert.ToString(dataReader["contacto"]);
               // }
               //if (!Convert.IsDBNull(dataReader["telefono_contacto"]))
               //{
               //    usuario.telefono_contacto = Convert.ToString(dataReader["telefono_contacto"]);
               //}
               //if (!Convert.IsDBNull(dataReader["id_seguro"]))
               //{
               //    usuario.id_seguro = Convert.ToInt32(dataReader["id_seguro"]);
               //}
               //if (!Convert.IsDBNull(dataReader["sueldo"]))
               //{
               //    usuario.sueldo = Convert.ToDouble(dataReader["sueldo"]);
               //}

                //usuario.Id_Cargo = Convert.ToInt32(dataReader["Id_Cargo"]);
               

                listaUsuario.Add(usuario);
            }
            dataReader.Close();
            sqlCon.Close();

            return listaUsuario;
        }



        internal List<UsuarioBean> ListarUsuarioMod(UsuarioBean usuario)
        {
            List<UsuarioBean> listaUsuarios = new List<UsuarioBean>();

            String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

            SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);
            sqlCon.Open();

            string commandString0 = "UPDATE dbo.persona SET Nombres = '" + usuario.nombre + "',";
            commandString0 = commandString0 + "apellidos = '" + usuario.apellidos + "',";
            commandString0 = commandString0 + "nro_documento_persona = '" + usuario.nro_documento_persona + "',";
            commandString0 = commandString0 + "tipo_documento = '" + usuario.tipo_documento + "',";
            commandString0 = commandString0 + "correo = '" + usuario.correo + "',";
            commandString0 = commandString0 + "telefono = '" + usuario.telefono + "',";
            commandString0 = commandString0 + "celular = '" + usuario.celular + "',";
            commandString0 = commandString0 + "genero = '" + usuario.genero + "',";
            commandString0 = commandString0 + "direccion = '" + usuario.direccion + "',";
            commandString0 = commandString0 + "Id_Cargo = " + usuario.Id_Cargo + ",";
            commandString0 = commandString0 + "estado = " + usuario.estado;
            commandString0 = commandString0 + " WHERE id_persona = " + usuario.id_persona + "";
            SqlCommand sqlCmd0 = new SqlCommand(commandString0, sqlCon);
            sqlCmd0.ExecuteNonQuery();

            string commandString = "SELECT * FROM persona";
            commandString = commandString + " WHERE id_persona= " + usuario.id_persona + "";
            SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
            SqlDataReader dataReader = sqlCmd.ExecuteReader();

            while (dataReader.Read())
            {
                UsuarioBean usuario2 = new UsuarioBean();
                usuario2.nombre = Convert.ToString(dataReader["nombres"]);
                usuario2.apellidos = Convert.ToString(dataReader["apellidos"]);
                usuario2.genero = Convert.ToString(dataReader["genero"]);
                usuario2.tipo_documento = Convert.ToString(dataReader["tipo_documento"]);
                usuario2.nro_documento_persona = Convert.ToString(dataReader["nro_documento_persona"]);
                usuario2.telefono = Convert.ToString(dataReader["telefono"]);
                if (!string.IsNullOrEmpty(usuario2.celular))
                {
                    usuario2.celular = Convert.ToString(dataReader["celular"]);
                }
                if (!string.IsNullOrEmpty(usuario2.correo))
                {
                    usuario2.correo = Convert.ToString(dataReader["correo"]);
                }
                if (!string.IsNullOrEmpty(usuario2.direccion))
                {
                    usuario2.direccion = Convert.ToString(dataReader["direccion"]);
                }
                if (usuario2.Id_Cargo > 0)
                {
                    usuario2.Id_Cargo = Convert.ToInt32(dataReader["Id_Cargo"]);
                }

                listaUsuarios.Add(usuario2);
            }
            dataReader.Close();
            sqlCon.Close();

            return listaUsuarios;
        }

        //Modificar personal

        internal List<PersonalBean> ListarPersonalMod(PersonalBean personal)
        {
            List<PersonalBean> listaUsuarios = new List<PersonalBean>();

            String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

            SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);
            sqlCon.Open();

            string commandString4 = "SELECT count(*)  FROM Persona WHERE tipo_documento = '" + personal.tipo_documento + "' AND nro_documento_persona = '" + personal.nro_documento_persona + "' and id_persona= " + personal.id_persona + " ";
            SqlCommand sqlCmd4 = new SqlCommand(commandString4, sqlCon);
            Int32 count = (Int32)sqlCmd4.ExecuteScalar();

            if (count==0){
                string commandString0 = "UPDATE dbo.persona SET Nombres = '" + personal.nombre + "',";
                commandString0 = commandString0 + "apellidos = '" + personal.apellidos + "',";
                commandString0 = commandString0 + "nro_documento_persona = '" + personal.nro_documento_persona + "',";
                commandString0 = commandString0 + "tipo_documento = '" + personal.tipo_documento + "',";
                commandString0 = commandString0 + "correo = '" + personal.correo + "',";
                commandString0 = commandString0 + "telefono = '" + personal.telefono + "',";
                commandString0 = commandString0 + "celular = '" + personal.celular + "',";
                commandString0 = commandString0 + "genero = '" + personal.genero + "',";
                commandString0 = commandString0 + "direccion = '" + personal.direccion + "',";
                commandString0 = commandString0 + "Id_Cargo = " + personal.Id_Cargo + ",";
                commandString0 = commandString0 + "estado = " + personal.estado;
                commandString0 = commandString0 + " WHERE id_persona = " + personal.id_persona + "";
                SqlCommand sqlCmd0 = new SqlCommand(commandString0, sqlCon);
                sqlCmd0.ExecuteNonQuery();
            }

            sqlCon.Close();

            sqlCon.Open();

                string commandString1 = "UPDATE dbo.personal SET id_seguro = " + personal.id_seguro + ",";
                commandString1 = commandString1 + "sueldo = " + personal.sueldo + ",";
                commandString1 = commandString1 + " WHERE id_personal = " + personal.id_persona + "";
                SqlCommand sqlCmd1 = new SqlCommand(commandString1, sqlCon);
                sqlCmd1.ExecuteNonQuery();

                sqlCon.Close();

                sqlCon.Open();

                string commandString = "SELECT * FROM persona a inner join personal b on a.id_persona=b.id_persona where a.id_persona=" + personal.id_persona + " " ;
                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                SqlDataReader dataReader = sqlCmd.ExecuteReader();

                if (dataReader.Read())
                {
                    PersonalBean usuario2 = new PersonalBean();
                    usuario2.nombre = Convert.ToString(dataReader["nombres"]);
                    usuario2.apellidos = Convert.ToString(dataReader["apellidos"]);
                    usuario2.genero = Convert.ToString(dataReader["genero"]);
                    usuario2.tipo_documento = Convert.ToString(dataReader["tipo_documento"]);
                    usuario2.nro_documento_persona = Convert.ToString(dataReader["nro_documento_persona"]);
                    usuario2.telefono = Convert.ToString(dataReader["telefono"]);
                    if (!string.IsNullOrEmpty(usuario2.celular))
                    {
                        usuario2.celular = Convert.ToString(dataReader["celular"]);
                    }
                    if (!string.IsNullOrEmpty(usuario2.correo))
                    {
                        usuario2.correo = Convert.ToString(dataReader["correo"]);
                    }
                    if (!string.IsNullOrEmpty(usuario2.direccion))
                    {
                        usuario2.direccion = Convert.ToString(dataReader["direccion"]);
                    }
                    if (usuario2.Id_Cargo > 0)
                    {
                        usuario2.Id_Cargo = Convert.ToInt32(dataReader["Id_Cargo"]);
                    }
                    if (usuario2.sueldo > 0)
                    {
                        usuario2.sueldo = Convert.ToInt32(dataReader["sueldo"]);
                    }
                    if (usuario2.id_seguro > 0)
                    {
                        usuario2.id_seguro = Convert.ToInt32(dataReader["id_seguro"]);
                    }

                listaUsuarios.Add(usuario2);
            }

            dataReader.Close();
            sqlCon.Close();

            return listaUsuarios;
        }

        //Modificar habitante

        internal List<HabitanteBean> ListarHabitanteMod(HabitanteBean habitante)
        {
            List<HabitanteBean> listaUsuarios = new List<HabitanteBean>();

            String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

            SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);
            sqlCon.Open();

            string commandString4 = "SELECT count(*)  FROM Persona WHERE tipo_documento = '" + habitante.tipo_documento + "' AND nro_documento_persona = '" + habitante.nro_documento_persona + "' and id_persona= " + habitante.id_persona + " ";
            SqlCommand sqlCmd4 = new SqlCommand(commandString4, sqlCon);
            Int32 count = (Int32)sqlCmd4.ExecuteScalar();

            sqlCon.Close();

            sqlCon.Open();

            if (count == 0)
            {

                string commandString0 = "UPDATE dbo.persona SET Nombres = '" + habitante.nombre + "',";
                commandString0 = commandString0 + "apellidos = '" + habitante.apellidos + "',";
                commandString0 = commandString0 + "nro_documento_persona = '" + habitante.nro_documento_persona + "',";
                commandString0 = commandString0 + "tipo_documento = '" + habitante.tipo_documento + "',";
                commandString0 = commandString0 + "correo = '" + habitante.correo + "',";
                commandString0 = commandString0 + "telefono = '" + habitante.telefono + "',";
                commandString0 = commandString0 + "celular = '" + habitante.celular + "',";
                commandString0 = commandString0 + "genero = '" + habitante.genero + "',";
                commandString0 = commandString0 + "direccion = '" + habitante.direccion + "',";
                commandString0 = commandString0 + "Id_Cargo = " + habitante.Id_Cargo + ",";
                commandString0 = commandString0 + "estado = " + habitante.estado;
                commandString0 = commandString0 + " WHERE id_persona = " + habitante.id_persona + "";
                SqlCommand sqlCmd0 = new SqlCommand(commandString0, sqlCon);
                sqlCmd0.ExecuteNonQuery();
            }

           

                if (habitante.es_inquilino == 1)
                {
                    habitante.es_propietario = 2;
                }
                else
                {
                    habitante.es_propietario = 1;
                }

                sqlCon.Close();

                sqlCon.Open();

                string commandString1 = "UPDATE habitante SET es_inquilino = " + habitante.es_inquilino + ",";
                commandString1 = commandString1 + "es_propietario = " + habitante.es_propietario + ",";
                commandString1 = commandString1 + "contacto = '" + habitante.contacto + "',";
                commandString1 = commandString1 + "telefono_contacto = '" + habitante.telefono_contacto + "' ";
                commandString1 = commandString1 + " WHERE id_persona = " + habitante.id_persona + "";
                SqlCommand sqlCmd1 = new SqlCommand(commandString1, sqlCon);
                sqlCmd1.ExecuteNonQuery();

                sqlCon.Close();

                sqlCon.Open();

                string commandString = "SELECT * FROM persona a inner join habitante b on a.id_persona=b.id_persona where a.id_persona="+ habitante.id_persona + " ";
                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                SqlDataReader dataReader = sqlCmd.ExecuteReader();
                HabitanteBean usuario2 = new HabitanteBean();

                if (dataReader.Read())
                {

                    usuario2.nombre = Convert.ToString(dataReader["nombres"]);
                    usuario2.apellidos = Convert.ToString(dataReader["apellidos"]);
                    usuario2.genero = Convert.ToString(dataReader["genero"]);
                    usuario2.tipo_documento = Convert.ToString(dataReader["tipo_documento"]);
                    usuario2.nro_documento_persona = Convert.ToString(dataReader["nro_documento_persona"]);
                    usuario2.telefono = Convert.ToString(dataReader["telefono"]);
                    if (!string.IsNullOrEmpty(usuario2.celular))
                    {
                        usuario2.celular = Convert.ToString(dataReader["celular"]);
                    }
                    if (!string.IsNullOrEmpty(usuario2.correo))
                    {
                        usuario2.correo = Convert.ToString(dataReader["correo"]);
                    }
                    if (!string.IsNullOrEmpty(usuario2.direccion))
                    {
                        usuario2.direccion = Convert.ToString(dataReader["direccion"]);
                    }
                    if (usuario2.Id_Cargo > 0)
                    {
                        usuario2.Id_Cargo = Convert.ToInt32(dataReader["Id_Cargo"]);
                    }

                    usuario2.es_inquilino = Convert.ToInt32(dataReader["es_inquilino"]);
                    
                    if (!(Convert.IsDBNull(dataReader["contacto"])))
                    {
                        usuario2.contacto = Convert.ToString(dataReader["contacto"]);
                    }
                    if (!(Convert.IsDBNull(dataReader["telefono_contacto"])))
                    {
                        usuario2.telefono_contacto = Convert.ToString(dataReader["telefono_contacto"]);
                    }

                        //usuario2.es_inquilino = Convert.ToInt32(dataReader["es_inquilino"]);
                        //usuario2.es_propietario = Convert.ToInt32(dataReader["es_propietario"]);
                        //usuario2.contacto = Convert.ToString(dataReader["contacto"]);
                        //usuario2.telefono_contacto = Convert.ToString(dataReader["telefono_contacto"]);
                }

                listaUsuarios.Add(usuario2);

            dataReader.Close();
            sqlCon.Close();

            return listaUsuarios;
        }


        public string eliminarUsuario(UsuarioBean usuario)
        {
            String me = "";

            String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

            SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);
            sqlCon.Open();

            string commandString0 = "update persona set estado =0 ";
            commandString0 = commandString0 + " WHERE tipo_documento = '" + usuario.tipo_documento + "' and nro_documento_persona = '" + usuario.nro_documento_persona + "' and estado=1";
            SqlCommand sqlCmd0 = new SqlCommand(commandString0, sqlCon);
            try
            {
                sqlCmd0.ExecuteNonQuery();
                me = "Bien";
            }
            catch
            {
                me = "Hubo un error al eliminar";
            }


            sqlCon.Close();

            return me;
        }
    }
}
